A major objective in graphics rendering is to produce images that are so realistic that the observer believes the images are real. A fundamental difficulty in achieving total visual realism is the complexity of accurately representing real world visual effects. A scene can include a wide variety of textures, subtle color gradations, reflections, translucency, etc. To achieve this realism, much graphics information must be collected in the graphics pipeline.
For example, one important way to make images more realistic is to determine how objects in a scene cast shadows, and then represent these shadows in the rendered image. In order to accurately portray such shadows, information in the form of various z-values must be collected.
Various other examples of graphics processing techniques exist which are used to promote realism, and require the collection of additional information. In particular, transparency rendering, blending, layered depth images (LDIs), fog, etc. are all further examples of such graphics processing techniques.
With respect to transparency rendering, for correctly rendering semi-transparent objects in a scene, back-to-front (or front-to-back assuming an alpha buffer) rendering is typically employed. In general, correct sorting of semi-transparent objects is awkward for many applications. Incorrect sorting leads to objectionable, sometimes glaring, artifacts which undermine the appearance of semi-transparency. Even when sorting is performed by the application, situations exist where objects interpenetrate or triangles overlap in such a way that there is no unique sorted order for the triangles. Depth peeling offers a way to establish a correct sorted order on a per-pixel basis so a scene can be correctly rendered with proper semi-transparency.
Computer graphics pipeline designers are always searching for new, innovative ways to collect graphics information in the graphics pipeline for enabling new graphics processing techniques and improving existing graphics processing techniques.